// Kony

#pragma once

#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#include "Engine/DataAsset.h"
#include "BaseInputConfig.generated.h"

USTRUCT(BlueprintType)
struct FBaseInputAction
{
	GENERATED_BODY()

	//输入按键
	UPROPERTY(EditDefaultsOnly)
	const class UInputAction* InputAction = nullptr;
	//按键游戏标签
	UPROPERTY(EditDefaultsOnly)
	FGameplayTag InputTag;
};

/**
 * 按键输入映射 判断 基类，用于判断用户输入了哪些按键对应触发能力
 */
UCLASS()
class GASC_HUANLING_API UBaseInputConfig : public UDataAsset
{
	GENERATED_BODY()

public:
	//根据标签查找按键输入
	const UInputAction* FindAbilityInputActionForTag(const FGameplayTag& InputTag,bool bLogNotFound = false) const;
	
	//按键映射数组
	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
	TArray<FBaseInputAction> AbilityInputActions;
};
